package main

import (
	"fmt"
)

type BInterface interface {
	test01()
}

type CInterface interface {
	test02()
}

type AInterface interface {
	BInterface
	CInterface
	test03()
}

// 如果需要实现 AInterface,就需要将 BInterface CInterface 的方法都实现
type Stu struct {
}

func (stu Stu) test01() {

}
func (stu Stu) test02() {

}
func (stu Stu) test03() {

}

type T interface {
}

func main() {
	// 一个接口(比如 A 接口)可以继承多个别的接口(比如 B,C 接口)，这时如果要实现 A 接口，也必须将 B,C 接口的方法也全部实现
	var stu Stu
	var a AInterface = stu
	a.test01()

	// 空接口 interface{} 没有任何方法， 所以所有类型都实现了空接 口, 即我们可以 把任何一个变量 赋给空接口。
	var t T = stu // ok
	fmt.Println(t)
	var t2 interface{} = stu
	var num1 float64 = 8.8
	t2 = num1
	t = num1
	fmt.Println(t2, t)
}
